
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>


<script>
    // 封装栈类
    function Stack(){
        //属性
        this.items = [];

        // 栈中的相关操作
    //========1、将元素压入栈===========
    //    下面这种为对象添加“方法”的方法，不推荐
    //    这会为每个zhan实例添加方法，浪费内存，效率低
    //     this.push = function(element){
    //
    //     }
    //
        Stack.propertype.push = function (element){
            this.items.push(element);
        }

    //=======2、pop 移除栈顶的元素，同时返回被移除的元素
        Stack.propertype.pop = function (){
            return this.items.pop();
            //利用数组本身的方法
        }

    //    3、查看栈顶元素
         Stack.propertype.peek = function(){
            return this.items[this.items.length-1];
         }

    //    4、判断栈是否为空
        Stack.propertype.isEmpty  =function (){
            return this.items.length == 0;
        }

    //    5、读取栈中元素的个数
        Stack.propertype.size = function () {
            return this.items.length;
        }

    //    6、toString
        Stack.propertype.toString = function () {
            var resultString = "";
            for (var i = 0;i<this.items.length;i++){
                resultString += this.items[i] + "";
            }
            reutrn resultString;
        }







    }

</script>
</body>
</html>